<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>回顾Object.defineProperty方法</title>
		<script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="root">
			
		</div>
		<script type="text/javascript">
			let number = 18
			// 创建一个对象
			let person = {
				name:"张三",
				sex:"男",
			}
			// 为 对象设置属性
			/**
			 * 参数一 ：对象，指定设置那个对象 
			 * 参数二 : 添加属性的名称
			 * 参数三 ：数据类型是对象类型，为指定属性添加什么数据
			 */
			Object.defineProperty(person,'age',{
				// value:18,
				// enumerable:true  ,// 控制属性是否可以枚举，默认是false
				// writable:true    , //控制属性是否可以被修改 默认是 false
				// configurable:true ,// 控制属性是否被删除，默认值是false
				// 当有人读取person的age属性时，get函数(getter)就会被调用，且返回值就是age的值
				get(){
					return number
				},
				// 当有人修改person的age属性时，set函数(setter)就会被调用，且会收到修改的具体的值
				set(value){
					number = value
				}
			})
			console.log(person);
		</script>
	</body>
</html>
